import { setStorage } from './storage';

const cheerio = require('cheerio');

interface News {
    title: string,
    url: string,
}

/**
 * 给service用的
 * @param html 爬虫返回的html
 * @param type 属于baidu还是什么，这个关系到缓存key
 * @param query 查询哪些参数
 */
export function getHotNewsList(html, type, query, host?: any) {
    const hotNews = getHotNewsFromHTML(html, query, host);
    setStorage(hotNews, type);
    return hotNews;
}

/**
 * 从html抽取热点新闻
 * 使用cheerio模块的cherrio.load()方法
 * @param html 文本
 * @param query 查询
 * @param isGB2312 是的话会导致cherio乱码，要解码
 */
function getHotNewsFromHTML(html: string, query: string, host?: any) {
    const hotNews = [];
    const $ = cheerio.load(html);

    $(query).each((index, el) => {
        if ($(el).text().trim().length < 10) { // 无效标题
            return;
        }
        let news: News = {
            title: $(el).text(),
            url: host ? host + $(el).attr('href') : $(el).attr('href'),
        };
        hotNews.push(news);
    });
    return hotNews;
}
